package com.glsc.ngateway.common.base.domain.oracle.xinyizj;

import io.swagger.annotations.ApiModelProperty;
import lombok.*;

import javax.persistence.*;
import java.math.BigDecimal;
import java.util.Date;

@ToString
@Data
@Entity
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Table(name = "EA_FS.FS_BANK_VOU")
public class FsBankVou {

    @Id
    @ApiModelProperty(value = "银行返回流水号")
    @Column(name = "BANK_RET_JOUR_ID", columnDefinition = "VARCHAR2(100) COMMENT '银行返回流水号'")
    private String bankRetJourId;

    @ApiModelProperty(value = "币种")
    @Column(name = "CUR_TYPE", columnDefinition = "VARCHAR2(100) COMMENT '币种'")
    private String curType;

    @ApiModelProperty(value = "银行账户ID")
    @Column(name = "BANK_ACC_ID", columnDefinition = "NUMBER(10,0) COMMENT '银行账户ID'")
    private Long bankAccId;

    @ApiModelProperty(value = "入账日期")
    @Column(name = "POST_DATE", columnDefinition = "NUMBER(8,0) COMMENT '入账日期'")
    private Long postDate;

    @ApiModelProperty(value = "入账时间")
    @Column(name = "POST_TIME", columnDefinition = "VARCHAR2(100) COMMENT '入账时间'")
    private String postTime;

    @ApiModelProperty(value = "付款方银行账户ID")
    @Column(name = "PAY_BANK_ACC_ID", columnDefinition = "NUMBER(10,0) COMMENT '付款方银行账户ID'")
    private Long payBankAccId;

    @ApiModelProperty(value = "付款方银行代码")
    @Column(name = "PAY_BANK_CODE", columnDefinition = "VARCHAR2(100) COMMENT '付款方银行代码'")
    private String payBankCode;

    @ApiModelProperty(value = "付款方银行账号")
    @Column(name = "PAY_BANK_ACC", columnDefinition = "VARCHAR2(100) COMMENT '付款方银行账号'")
    private String payBankAcc;

    @ApiModelProperty(value = "付款方账户名称")
    @Column(name = "PAY_BANK_ACC_NAME", columnDefinition = "VARCHAR2(120) COMMENT '付款方账户名称'")
    private String payBankAccName;

    @ApiModelProperty(value = "收款银行账户ID")
    @Column(name = "REC_BANK_ACC_ID", columnDefinition = "NUMBER(10,0) COMMENT '收款银行账户ID'")
    private Long recBankAccId;

    @ApiModelProperty(value = "收款方银行代码")
    @Column(name = "REC_BANK_CODE", columnDefinition = "VARCHAR2(100) COMMENT '收款方银行代码'")
    private String recBankCode;

    @ApiModelProperty(value = "收款方银行账号")
    @Column(name = "REC_BANK_ACC", columnDefinition = "VARCHAR2(100) COMMENT '收款方银行账号'")
    private String recBankAcc;

    @ApiModelProperty(value = "收款方账户名称")
    @Column(name = "REC_BANK_ACC_NAME", columnDefinition = "VARCHAR2(120) COMMENT '收款方账户名称'")
    private String recBankAccName;

    @ApiModelProperty(value = "发生金额")
    @Column(name = "OCCUR_BAL", columnDefinition = "NUMBER(19,2) COMMENT '发生金额'")
    private BigDecimal occurBal;

    @ApiModelProperty(value = "摘要")
    @Column(name = "NOTE", columnDefinition = "VARCHAR2(120) COMMENT '摘要'")
    private String note;

    @ApiModelProperty(value = "最后更新时间")
    @Column(name = "UPDATE_DATE")
    private Date updateDate;

    @ApiModelProperty(value = "操作返回码 0：操作成功 -1：操作失败")
    @Column(name = "RET_CODE", columnDefinition = "VARCHAR2(255) COMMENT '操作返回码 0：操作成功 -1：操作失败'")
    private String retCode;

    @ApiModelProperty(value = "操作说明")
    @Column(name = "RET_MSG", columnDefinition = "VARCHAR2(255) COMMENT '操作说明'")
    private String retMsg;

    @ApiModelProperty(value = "划款情况复查业务号")
    @Column(name = "QUERY_ID", columnDefinition = "VARCHAR2(255) COMMENT '划款情况复查业务号'")
    private String queryId;

    @ApiModelProperty(value = "营业部简称")
    @Column(name = "DEPT_NAME", columnDefinition = "VARCHAR2(255) COMMENT '营业部简称'")
    private String deptName;

    @ApiModelProperty(value = "借贷标志  C：贷记  D：借记  RC：贷记撤销  RD：借记撤销")
    @Column(name = "DC_FLAG", columnDefinition = "VARCHAR2(255) COMMENT '借贷标志  C：贷记  D：借记  RC：贷记撤销  RD：借记撤销'")
    private String dcFlag;

    @ApiModelProperty(value = "凭证类型")
    @Column(name = "VOUCHER_TYPE", columnDefinition = "VARCHAR2(255) COMMENT '凭证类型'")
    private String voucherType;

    @ApiModelProperty(value = "凭证号")
    @Column(name = "VOUCHER_NO", columnDefinition = "VARCHAR2(255) COMMENT '凭证号'")
    private String voucherNo;

    @ApiModelProperty(value = "余额")
    @Column(name = "BAL", columnDefinition = "NUMBER(19,2) COMMENT '余额'")
    private BigDecimal bal;

    @ApiModelProperty(value = "可用余额")
    @Column(name = "AVAIL_BAL", columnDefinition = "NUMBER(19,2) COMMENT '可用余额'")
    private BigDecimal availBal;

    @ApiModelProperty(value = "处理标志 1 处理 0未处理")
    @Column(name = "PROC_FLAG", columnDefinition = "VARCHAR2(255) COMMENT '处理标志 1 处理 0未处理'")
    private String procFlag;

    @ApiModelProperty(value = "银行流水分类代码")
    @Column(name = "VOU_CLASS_CODE", columnDefinition = "VARCHAR2(255) COMMENT '银行流水分类代码'")
    private String vouClassCode;

    @ApiModelProperty(value = "银行流水数据来源")
    @Column(name = "BANK_VOU_SOURCE", columnDefinition = "VARCHAR2(255) COMMENT '银行流水数据来源'")
    private String bankVouSource;

    @ApiModelProperty(value = "原银行流水ID，可能没有")
    @Column(name = "OLD_BANK_RET_JOUR_ID", columnDefinition = "VARCHAR2(255) COMMENT '原银行流水ID，可能没有'")
    private String oldBankRetJourId;

    @ApiModelProperty(value = "付款方行名")
    @Column(name = "PAY_BANK_NAME", columnDefinition = "VARCHAR2(255) COMMENT '付款方行名'")
    private String payBankName;

    @ApiModelProperty(value = "收款方行名")
    @Column(name = "REC_BANK_NAME", columnDefinition = "VARCHAR2(255) COMMENT '收款方行名'")
    private String recBankName;

    @ApiModelProperty(value = "入账时间")
    @Column(name = "OCCUR_TIME", columnDefinition = "VARCHAR2(30) COMMENT '入账时间'")
    private String occurTime;

    @ApiModelProperty(value = "用途/摘要")
    @Column(name = "REMARK", columnDefinition = "VARCHAR2(255) COMMENT '用途/摘要'")
    private String remark;

    @ApiModelProperty(value = "新意流水号")
    @Column(name = "BANK_SEQ_ID", columnDefinition = "VARCHAR2(255) COMMENT '新意流水号'")
    private String bankSeqId;

    @ApiModelProperty(value = "异常标识")
    @Column(name = "ERROR_STATUS", columnDefinition = "VARCHAR2(255) COMMENT '异常标识'")
    private String errorStatus;

    @ApiModelProperty(value = "异常描述")
    @Column(name = "ERROR_DESC", columnDefinition = "VARCHAR2(256) COMMENT '异常描述'")
    private String errorDesc;

    @ApiModelProperty(value = "0未认领 1已认领 2已确认 9认领中 ")
    @Column(name = "CLAIM_STATUS", columnDefinition = "VARCHAR2(255) COMMENT '0未认领 1已认领 2已确认 9认领中 '")
    private String claimStatus;

    @ApiModelProperty(value = "入账凭证ID")
    @Column(name = "BOOK_VOU_ID", columnDefinition = "VARCHAR2(255) COMMENT '入账凭证ID'")
    private String bookVouId;

    @ApiModelProperty(value = "凭证入账日期")
    @Column(name = "BOOK_POST_DATE", columnDefinition = "NUMBER(8,0) COMMENT '凭证入账日期'")
    private BigDecimal bookPostDate;

    @ApiModelProperty(value = "资金用途代码")
    @Column(name = "FUND_VOU_CODE", columnDefinition = "VARCHAR2(255) COMMENT '资金用途代码'")
    private String fundVouCode;

    @ApiModelProperty(value = "认领说明")
    @Column(name = "CLAIM_DESC", columnDefinition = "VARCHAR2(255) COMMENT '认领说明'")
    private String claimDesc;

    @ApiModelProperty(value = "批次号")
    @Column(name = "BATCH_NO", columnDefinition = "NUMBER(8,0) COMMENT '批次号'")
    private BigDecimal batchNo;

    @ApiModelProperty(value = "源摘要")
    @Column(name = "SRC_NOTE", columnDefinition = "VARCHAR2(255) COMMENT '源摘要'")
    private String srcNote;

    @ApiModelProperty(value = "补充细节/附言")
    @Column(name = "POSTSCRIPT", columnDefinition = "VARCHAR2(255) COMMENT '补充细节/附言'")
    private String postscript;

    @ApiModelProperty(value = "付款方开户行号")
    @Column(name = "PAY_OPEN_BANK_CODE", columnDefinition = "VARCHAR2(255) COMMENT '付款方开户行号'")
    private String payOpenBankCode;

    @ApiModelProperty(value = "收款方开户行号")
    @Column(name = "REC_OPEN_BANK_CODE", columnDefinition = "VARCHAR2(255) COMMENT '收款方开户行号'")
    private String recOpenBankCode;

    @ApiModelProperty(value = "付款方开户行名称")
    @Column(name = "PAY_OPEN_BANK_NAME", columnDefinition = "VARCHAR2(255) COMMENT '付款方开户行名称'")
    private String payOpenBankName;

    @ApiModelProperty(value = "收款方开户行名称")
    @Column(name = "REC_OPEN_BANK_NAME", columnDefinition = "VARCHAR2(255) COMMENT '收款方开户行名称'")
    private String recOpenBankName;

    @ApiModelProperty(value = "取消认领1  已取消认领")
    @Column(name = "CANCEL_CLAIM_FLAG", columnDefinition = "VARCHAR2(255) COMMENT '取消认领1  已取消认领'")
    private String cancelClaimFlag;

    @ApiModelProperty(value = "是否手工确认分类 0非手工，1 手工")
    @Column(name = "IS_HAND", columnDefinition = "VARCHAR2(255) COMMENT '是否手工确认分类 0非手工，1 手工'")
    private String isHand;

    @ApiModelProperty(value = "勾单状态")
    @Column(name = "HOOK_STATUS", columnDefinition = "VARCHAR2(255) COMMENT '勾单状态'")
    private String hookStatus;


}
